package com.cskaoyan.javase.oop2._1extends._6initialization._3super;

/**
 * @description: super关键字
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 什么是super关键字?
 * 在对象中,this表示指向自身对象,而super指向自身对象中父类的那片区域,从使用的角度上来看,
 *      完全可以把super当成指向父类对象(没有父类对象,只是近似看做)
 *
 * super关键字的使用:
 *      super和this的使用几乎没有任何区别,它们都作为类的成员方法的隐式传参,可以访问自身/父类的成员
 *      也可以在构造器中去表示调用自身/父类的构造器
 *
 * 它们的使用唯二的区别:
 *      1.this指向当前对象,对象中的成员(包括继承自父类)的都可以访问,但是super指向父类区域,只能访问父类的成员
 *          特殊的,如果父子类成员出现同名情况,this指向自身的同名成员,super指向父类的同名成员
 *          所以super和this可以用来区分父子类同名成员
 *      2.this毕竟是自己人,指向自己的对象,super指向父类区域,不算自己人,所以super访问父类成员时要受访问权限限制,而this不受
 *
 *
 *
 */
public class Demo {
    public static void main(String[] args) {
        new Student().test();
    }
}

class Person {
    int age;
    private int a = 10;

}

class Student extends Person {
    String name;
    private int a = 100;

    public void test() {
        System.out.println(this.a);
        //System.out.println(super.a);
    }
}